package com.settlement.system.model.entity.common;

import java.math.BigDecimal;
import java.util.Date;

import java.io.Serializable;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.settlement.system.converter.TblRefundAuditBillConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * 退款稽核单据主表
 * @author xiaochuan
 * @since 2020-07-23
 */
@Data
@ExcelIgnoreUnannotated
@HeadStyle(fillBackgroundColor = 9,fillForegroundColor = 9)
@HeadRowHeight(value = 20)
@HeadFontStyle(fontHeightInPoints = 14)
public class TblRefundAuditBillExport extends BaseModel implements Serializable {


    /**
     * 单据状态编码
     */
    @ApiModelProperty(value = "单据状态编码")
    private String billStatusNo;

    /**
     * 单据状态名称
     */
    @ApiModelProperty(value = "单据状态名称")
    @ExcelProperty(value = "单据状态名称")
    private String billStatusName;

    /**
     * 退款时间
     */
    @ExcelProperty(value = "退款时间")
    @ApiModelProperty(value = "退款时间")
    private Date backAmountDate;

    /**
     * 下单时间
     */
    @ExcelProperty(value = "下单时间")
    @ApiModelProperty(value = "下单时间")
    private Date orderDate;

    /**
     * 订单二级来源编码
     */
    @ExcelProperty(value = "订单二级来源编码")
    @ApiModelProperty(value = "订单二级来源编码")
    private String orderSourceNo;

    /**
     * 订单来源
     */
    @ExcelProperty(value = "订单来源")
    @ApiModelProperty(value = "订单来源")
    private String orderSource;

    /**
     * 订单三级来源编码
     */
    @ExcelProperty(value = "订单三级来源编码")
    @ApiModelProperty(value = "订单三级来源编码")
    private String threeLevelChannelNo;

    /**
     * 订单三级来源名称
     */
    @ExcelProperty(value = "订单三级来源名称")
    @ApiModelProperty(value = "订单三级来源名称")
    private String threeLevelChannelName;

    /**
     * 优购单号
     */
    @ExcelProperty(value = "优购单号")
    @ApiModelProperty(value = "优购单号")
    private String refBillNo;

    /**
     * 原始外部订单号
     */
    @ExcelProperty(value = "原始外部订单号")
    @ApiModelProperty(value = "原始外部订单号")
    private String spOrderNo;

    /**
     * 品牌编码
     */
    @ExcelProperty(value = "品牌编码")
    @ApiModelProperty(value = "品牌编码")
    private String brandNo;

    /**
     * 品牌名称
     */
    @ExcelProperty(value = "品牌名称")
    @ApiModelProperty(value = "品牌名称")
    private String brandName;

    /**
     * 商品编码(出厂时的商品编码)
     */
    @ExcelProperty(value = "商品编码(出厂时的商品编码)")
    @ApiModelProperty(value = "商品编码(出厂时的商品编码)")
    private String itemCode;

    /**
     * 商品尺码
     */
    @ExcelProperty(value = "商品尺码")
    @ApiModelProperty(value = "商品尺码")
    private String sizeNo;

    /**
     * 商品条码
     */
    @ExcelProperty(value = "商品条码")
    @ApiModelProperty(value = "商品条码")
    private String barCode;

    /**
     * 退款原因
     */
    @ExcelProperty(value = "退款原因")
    @ApiModelProperty(value = "退款原因")
    private String returnNote;

    /**
     * 退款类型编码(1未发货退款  2退货退款 5 拒收退款 9缺货退款 11取消发货退款)
     */
    @ApiModelProperty(value = "退款类型编码(1未发货退款  2退货退款 5 拒收退款 9缺货退款 11取消发货退款)")
    private String backAmountType;

    /**
     * 退款类型名称(1未发货退款 2退货退款 5 拒收退款 9缺货退款 11取消发货退款)
     */
    @ExcelProperty(value = "退款类型名称")
    @ApiModelProperty(value = "退款类型名称(1未发货退款 2退货退款 5 拒收退款 9缺货退款 11取消发货退款)")
    private String backAmountName;

    /**
     * 退款数量
     */
    @ExcelProperty(value = "退款数量")
    @ApiModelProperty(value = "退款数量")
    private Integer applyRefundNum;

    /**
     * 退款金额
     */
    @ExcelProperty(value = "退款金额")
    @ApiModelProperty(value = "退款金额")
    private BigDecimal totalBalanceAmount;

    /**
     * 发货数量
     */
    @ExcelProperty(value = "发货数量")
    @ApiModelProperty(value = "发货数量")
    private Integer sendQty;

    /**
     * 发货金额
     */
    @ExcelProperty(value = "发货金额")
    @ApiModelProperty(value = "发货金额")
    private BigDecimal sendAmount;

    /**
     * 退货数量
     */
    @ExcelProperty(value = "退货数量")
    @ApiModelProperty(value = "退货数量")
    private Integer returnQty;

    /**
     * 退货金额
     */
    @ExcelProperty(value = "退货金额")
    @ApiModelProperty(value = "退货金额")
    private BigDecimal returnAmount;

    /**
     * 差异数量
     */
    @ExcelProperty(value = "差异数量")
    @ApiModelProperty(value = "差异数量")
    private Integer diffQty;

    /**
     * 差异金额
     */
    @ExcelProperty(value = "差异金额")
    @ApiModelProperty(value = "差异金额")
    private BigDecimal diffAmount;

    /**
     * 责任方编码
     */
    @ApiModelProperty(value = "责任方编码")
    private String responsibleNo;

    /**
     * 责任方
     */
    @ExcelProperty(value = "责任方")
    @ApiModelProperty(value = "责任方")
    private String responsibleName;

    /**
     * 损失原因编码
     */
    @ApiModelProperty(value = "损失原因编码")
    private String lossReasonNo;

    /**
     * 损失原因
     */
    @ExcelProperty(value = "损失原因")
    @ApiModelProperty(value = "损失原因")
    private String lossReasonName;


    /**
     * 损失原因细则编码
     */
    @ApiModelProperty(value = "损失原因细则编码")
    private String lossReasonDtlNo;

    /**
     * 损失原因细则名称
     */
    @ExcelProperty(value = "损失原因细则名称")
    @ApiModelProperty(value = "损失原因细则名称")
    private String lossReasonDtlName;

    /**
     * 客服初步核实人
     */
    @ExcelProperty(value = "客服初步核实人")
    @ApiModelProperty(value = "客服初步核实人")
    private String firstServicePerson;

    /**
     * 客服初步核实人名称
     */
    @ExcelProperty(value = "客服初步核实人名称")
    @ApiModelProperty(value = "客服初步核实人名称")
    private String firstServicePersonName;

    /**
     * 责任部门跟进结果
     */
    @ExcelProperty(value = "责任部门跟进结果")
    @ApiModelProperty(value = "责任部门跟进结果")
    private String responsibleResults;

    /**
     * 是否确认损失（0无损失 1 确认损失）
     */
    @ExcelProperty(value = "是否确认损失",converter = TblRefundAuditBillConvert.class)
    @ApiModelProperty(value = "是否确认损失")
    private Integer isLoss;

    /**
     * 责任部门核实人
     */
    @ExcelProperty(value = "责任部门核实人")
    @ApiModelProperty(value = "责任部门核实人")
    private String responsiblePerson;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 质检时间
     */
    @ExcelProperty(value = "质检时间")
    @ApiModelProperty(value = "质检时间")
    private Date qualityDate;

    /**
     * 质检单号
     */
    @ExcelProperty(value = "质检单号")
    @ApiModelProperty(value = "质检单号")
    private String qualityBillNo;

    /**
     * 质检数量
     */
    @ExcelProperty(value = "质检数量")
    @ApiModelProperty(value = "质检数量")
    private Integer qualityQty;

    /**
     * 打款时间
     */
    @ExcelProperty(value = "打款时间")
    @ApiModelProperty(value = "打款时间")
    private Date paymentTime;

    /**
     * 收款交易号
     */
    @ExcelProperty(value = "收款交易号")
    @ApiModelProperty(value = "收款交易号")
    private String collectionTransactionNo;

    /**
     * 收款金额
     */
    @ExcelProperty(value = "收款金额")
    @ApiModelProperty(value = "收款金额")
    private BigDecimal receivingAmount;

    /**
     * 单据编码
     */
    @ExcelProperty(value = "单据编码")
    @ApiModelProperty(value = "单据编码")
    private String billNo;

    /**
     * 状态（确认和撤销两种）
     */
    @ApiModelProperty(value = "状态")
    @ExcelProperty(value = "状态")
    private String statusName;

    /**
     * 更新人
     */
    @ExcelProperty(value = "操作人")
    public String updateUser;

    /**
     * 更新时间
     */
    @ExcelProperty(value = "操作时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    public Date updateTime;

    /**
     * 创建人
     */
    @ExcelProperty(value = "创建人")
    public String createUser;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty(value = "创建时间")
    public Date createTime;


}
